package com.java.a03UDPDemo2;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.lang.String;
import java.net.InetAddress;

public class ReceiveMessageDemo {
    public static void main(String[] args) throws IOException {
          /*   按照下面的要求实现程序，
                    UDP发送数据：数据来自于键盘录入,直到输入的数据是886,发送数据结束
                    UDP结束数据：因为接收端不知道发送端什么时候停止发送，故采用死循环接收
             */

        //1.创建一个DatagramSocket对象
        DatagramSocket ds = new DatagramSocket(10086);

        //2.创建数据包接收数据

        byte[] bytes = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bytes, bytes.length);

        while (true) {
            //3. 调用DatagramSocket方法接收数据
            ds.receive(dp);

            //4.解析数据包, 在控制台打印
            byte[] data = dp.getData();

            int length = dp.getLength();
            InetAddress address = dp.getAddress();
            System.out.println(address + "发送的数据:    "  + new String(data,0, length));
        }


        //释放资源
//        ds.close();

    }
}
